Release Notes of version 3.60 of KiXtart 95.

Below is a history list of the various releases. Please see KiX95.doc for full
details on Kixtart commands and functions.

3.60
1       COPY - fixed handling of target without backslash or filename
2       added local variables
3       added arrays
4       added DecToHex and handling of hexadecimal values
5       fixed issue in AT when output was redirected
6       added 'language' option to GetFileVersion
7       added GetFileSize
8       added mathematical & and |
9       added Dir
10      added GetFileAttr
11      added Execute
12      added SetFocus & SendKeys
13      fixed GetDiskSpace on pre-OSR2 Win95 (still limited to 2 gigabytes (GB) though)
14      internationalized KIX32 and KXRPC so output is in correct codepage
15      enhanced KIX32 on Windows 95/98 in situations with Global Groups of
        more than 20 characters
        Note : Global Groups over 20 characters will not be available to
               Windows 95/98 systems, but all other information will be
16      moved all cross-network information retrieval to runtime
17	added SITE macro
18	enhanced error reporting in KXRPC

3.55
1       fixed finding of default script in directory other than current (was broken since 3.48)
2       enhanced determination of logonserver on Windows 95/98 systems in resource domains
3       added an updated ALPHA build of KIX32.EXE
        To install the ALPHA build, simply copy KIX32.ALPHA from the ALPHA subdirectory
        to your system, and rename it to KIX32.EXE.

3.54
1       fixed bug (that was introduced in 3.53) with SET and SETM

3.53
1       fixed bug with empty strings in SubStr
2       added 5KB size limit on KIXTART.LOG
3       RND() can now return random number in a specific range
4       GetFileVersion now also works on incompletely versioned files
5       GetFileVersion can now return any of the version information fields
6       added GetFileTime
7       added GetDiskSpace
8       added @USERLANG & @SYSLANG
9       added /h option to COPY so hidden & system files can be copied

3.52
1       fixed problem in EXIT with setting ERRORLEVEL

3.51
1       fixed reporting RAS active when actually RAS is not installed
2       changed EXIT to set ERRORLEVEL if used at topmost level
3       fixed debugmode so it works okay when output has been redirected

3.50
1       fixed exception in COPY when used on files without extension
2       changed WM_WININICHANGE message to WM_SETTINGCHANGE and added timeout
3       made Exist() compliant with previous version (to work on drives and shares)

3.49
1       fixed wildcard character support for DEL

3.48
1       fixed ReadLine to correctly handle files opened for read access
2       fixed ydayno to return same result as kixtart 2.33
3       added /debug option
4       added /nonet option
5       removed last '\' from startdir
6       moved initialization of RAS information to runtime
7       added RD command (remove directory)
8       added wildcard character support to DEL, COPY & Exist()
9       added LogEvent()

3.47
1       fixed memory bug in InGroup that was introduced in 3.46

3.46
1       GET now really does handle function keys
2       added ASC()
3       added WriteLine() and enhanced Open() to open files for writing
4       added LoadHive() and UnloadHive()
5       added OLE Automation functions
6       added @SCRIPTDIR, @CURDIR, @SERROR

3.45
1       fixed issue with USE & variable for local resource
2       fixed issue with running of user-specific script if KXRPC unavailable
3       fixed issue with finding KIXTART.INI
4       USE now supports "USE * /delete"
5       added EnumGroup( index )
6       added EnumLocalGroup( index , source )

3.44
1       we now use a combination of thunking and RPC to retrieve information on Windows 95
        This means we once again work against SAMBA servers, and can work
        outside the logon sequence again.
2       USE now supports 'driveless' and persistent connections
3       we now support an additional default script extension : ".KIX"
4       added LCASE & UCASE functions

3.42
1       KXRPC mapping now supports multiple servers per mapping.
        NB : to enable this feature, update both KIX32.EXE & KXRPC.EXE.
             See the manual for more details.
2       fixed LMSCRIPT bug

3.41
1       KiXtart now has various methods to locate a KXRPC server
        NB : to enable this feature, update all components (KIX32.EXE,
             KXRPC.EXE and KX95.DLL) See the manual for more details.

2       removed old 64K limit on scripts
3       fixed bug in SELECT when last CASE was true

3.40
1       moved to RPC based information retrieval on Windows 95
2       added @LONGHOMEDIR
3       added @RAS
4       added QUIT
5       added GETFILEVERSION
6       added COMPAREFILETIMES
7       added COPY
8       fixed registry functions to handle computernames > 13 chars
9       fixed multiple display of last line with DISPLAY
10      added @HOMEDRIVE
11      GET enhanced to handle function keys (if a function key is
        pressed, GET returns 0 and @ERROR is set to the code of the
        function key)
12      added error logging (in the eventlog on Windows NT systems, and in 
        KIXTART.LOG in the TEMP directory on Windows 95 systems)

3.38
1       fixed problem with @DAY, @MONTh and @PRIV
2       fixed memory leak after SHELL

3.37
1       added SELECT/CASE/ENDSELECT (switch statement)
2       added GOSUB/RETURN
3       nesting of IF's, DO's, etc no longer limited to 10
4       added LTRIM/RTRIM/VAL functions

3.36
1       fixed Ingroup on local groups (didn't work for domains)
2       added @SID macro (only available to Windows NT workstations)
3       added @PRIMARYGROUP macro (only available to Windows NT workstations)
4       fixed issue with uppercase characters in COLOR statement
5       system menu of console is now correctly reset (previously, the
        system menu was reset to the windows default)
6       the 'please wait while your logonscript...' dialog is now
        automatically hidden as soon as KiXtart starts
7       ReadProfileString now correctly sets @ERROR
8       fixed issue with > 10 nested IF's
9       SETTIME now supports specific domain (for example : SETTIME "DomainName")
10      SETTIME correctly sets @ERROR

3.35
1       changed macro/variable/environment var resolution.

2       worked around 'LPTx' redirection issue on Windows NT 4.0.
3       INGROUP now also works for 'indirect' groupmembership (that is: if you
        are member of a global group that is member of a local group, INGROUP
        will now return true if used on the local group.
4       also, INGROUP now can be used to query for membership of local groups
        on a specific domain or server simply by preceding the name of the
        group with the name of the domain or server (that is:
        Ingroup( "\\MyServer\Administrators") , Ingroup( "YourDomain\Admins") )
        This feature is only available to Windows NT workstations
5       fixed issue with deleting sections from INI's with WriteProfileString.
6       enhanced SHUTDOWN to work on Windows 95 (local system only)

3.34
1       moved retrieval of TCP/IP to runtime (rather than init). This way,
        we only lose time waiting for TCP/IP if we really want to.
2       added 'empty' string support to ReadProfileString :
        ReadProfileString will now indeed return all section-/keynames if the
        respective parameter is empty. Values are concatenated into 1 string,
        separated by linefeeds ( chr(10) ).

3.33
1       fixed AddProgramItem (didn't work on Windows 95)
2       AddProgramItem now has the ability to Add & Replace an item in 1 call
        (in other words : whether or not the icon exists, a replace call can now
        succeed). To use this feature, specify 2 for the Replace parameter.
3       corrected 'short' stuff for @HOMEDIR

3.32
1       fixed ReadLine (it hung when last line didn't have <carriage return>)

3.31
1       fixed MessageBox, so that it (once again..) returns a correct value
        if run without a TimeOut value

3.30
1       added TCP/IP macro's (@IPADRESS0 through @IPADDRESS3 and @HOSTNAME)
2       added timeout parameter to MessageBox
3       added simple I/O functions (OPEN, READLINE,CLOSE)
4       changed @HOMEDIR such that it now always returns the 'short' name
5       added command to create a directory (MD)
6       added LOGOFF function
7       added CHR function

3.21
1       removed unnecessary '%' stuff from ReadValue

3.20
1       added Shutdown(), SendMessage(), Messagebox(), RedirectOutput(),
        see kix32.doc for details.
2       Enhanced 'interrupt' handler : BREAK OFF now also disables the
        'Close' option in the console system menu.
3       Fixed '$' handling in macro's.
4       Added optional parameter support.
5       Added 'RunInOwnMemorySpace' parameter to AddProgramItem().
6	@INWIN now indicates Windows NT (==1) or Windows 95 (==2)

3.19
1       /user & /password now DO understand vars as args

3.18
1       added code to emulate LOADKEY on Windows 95

3.17
1       added SETCONSOLE() function :

	SETCONSOLE("SHOW") 		- show console window
	SETCONSOLE("HIDE") 		- hides console window
	SETCONSOLE("FOREGROUND") 	- moves console window to foreground
	SETCONSOLE("ALWAYSONTOP") 	- makes console window topmost window
	SETCONSOLE("MINIMIZE") 		- minimizes console window
	SETCONSOLE("MAXIMIZE") 		- maximizes console window

	Return value : 0 if okay, >0 if error occurred.

3.16
1       rebuild of 3.15 without VC 4.0's speed-optimization...thereby fixing
        a problem with retrieving the LAN information on Windows 95

3.15
1       added DO - UNTIL & WHILE - LOOP
2       fixed AND & OR stuff

3.13
1       PASSWORD no longer supported, instead, USE now supports 2 new
        parameters : /PASSWORD:pw & /USER:user (latter only on Windows NT)
2       fixed @KIX...

3.12
1	fixed INGROUP so that it now really does return 2 for local groups 	(...)
2	made PLAY a little more flexible (it now understands "PLAY DING.WAV")

3.11
1	USE now supports PASSWORD

3.10
1	added Program Group Control
2	added Remote Printer Connection management
3	added INI file management 

3.02
1	removed debug information from SETTIME

3.01
1	SETTIME set incorrect time on Windows NT
2	Environment variables were incorrectly handled
3	SHELL did not set @ERROR to return code of the shelled program

Feedback

For questions or feedback concerning this tool, please contact rkinput@microsoft.com.
(c) 1985-2000 Microsoft Corporation. All rights reserved.
